package com.zqweb.gulimall.product.config;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.io.IOException;

@Configuration
public class RedissonConfig {
    @Bean(destroyMethod = "shutdown")
    // 注入Redisson框架的客户端操作bean组件
    public RedissonClient redissonClient(@Value("${spring.redis.host}") String redisHost) throws IOException {
        // redisHost不要写死，要配成动态（本地环境、云部署环境的redisHost是变化的）
        // 使用单Redis节点模式，并配置其连接的Redis服务器地址
        Config config = new Config();
        // 注意：连接的Redis服务器地址，需要加上redis:// 或 rediss:// 协议（后1个表示添加了SSL连接）
        config.useSingleServer().setAddress("redis://" + redisHost + ":6379");

        // 创建RedissonClient对象，并注入到容器中
        RedissonClient redissonClient = Redisson.create(config);
        return redissonClient;
    }
}
